home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.text.DateFormat;
- import sun.util.calendar.BaseCalendar;
- import sun.util.calendar.CalendarSystem;
- import sun.util.calendar.CalendarUtils;
- import sun.util.calendar.ZoneInfo;
-
- public class Date implements Serializable, Cloneable, Comparable<Date> {
- private static final BaseCalendar gcal = CalendarSystem.getGregorianCalendar();
- private static BaseCalendar jcal;
- private transient long fastTime;
- private transient BaseCalendar.Date cdate;
- private static int defaultCenturyStart;
- private static final long serialVersionUID = 7523967970034938905L;
- private static final String[] wtb = new String[]{"am", "pm", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday", "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december", "gmt", "ut", "utc", "est", "edt", "cst", "cdt", "mst", "mdt", "pst", "pdt"};
- private static final int[] ttb = new int[]{14, 1, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 10000, 10000, 10000, 10300, 10240, 10360, 10300, 10420, 10360, 10480, 10420};
-
- public Date() {
- this(System.currentTimeMillis());
- }
-
- public Date(long var1) {
- this.fastTime = var1;
- }
-
- /** @deprecated */
- @Deprecated
- public Date(int var1, int var2, int var3) {
- this(var1, var2, var3, 0, 0, 0);
- }
-
- /** @deprecated */
- @Deprecated
- public Date(int var1, int var2, int var3, int var4, int var5) {
- this(var1, var2, var3, var4, var5, 0);
- }
-
- /** @deprecated */
- @Deprecated
- public Date(int var1, int var2, int var3, int var4, int var5, int var6) {
- int var7 = var1 + 1900;
- if (var2 >= 12) {
- var7 += var2 / 12;
- var2 %= 12;
- } else if (var2 < 0) {
- var7 += CalendarUtils.floorDivide(var2, 12);
- var2 = CalendarUtils.mod(var2, 12);
- }
-
- BaseCalendar var8 = getCalendarSystem(var7);
- this.cdate = (BaseCalendar.Date)var8.newCalendarDate(TimeZone.getDefaultRef());
- this.cdate.setNormalizedDate(var7, var2 + 1, var3).setTimeOfDay(var4, var5, var6, 0);
- this.getTimeImpl();
- this.cdate = null;
- }
-
- /** @deprecated */
- @Deprecated
- public Date(String var1) {
- this(parse(var1));
- }
-
- public Object clone() {
- Date var1 = null;
-
- try {
- var1 = (Date)super.clone();
- if (this.cdate != null) {
- var1.cdate = (BaseCalendar.Date)this.cdate.clone();
- }
- } catch (CloneNotSupportedException var3) {
- }
-
- return var1;
- }
-
- /** @deprecated */
- @Deprecated
- public static long UTC(int var0, int var1, int var2, int var3, int var4, int var5) {
- int var6 = var0 + 1900;
- if (var1 >= 12) {
- var6 += var1 / 12;
- var1 %= 12;
- } else if (var1 < 0) {
- var6 += CalendarUtils.floorDivide(var1, 12);
- var1 = CalendarUtils.mod(var1, 12);
- }
-
- int var7 = var1 + 1;
- BaseCalendar var8 = getCalendarSystem(var6);
- BaseCalendar.Date var9 = (BaseCalendar.Date)var8.newCalendarDate((TimeZone)null);
- var9.setNormalizedDate(var6, var7, var2).setTimeOfDay(var3, var4, var5, 0);
- var9 = normalize(var9);
- var8 = getCalendarSystem(var9);
- return var8.getTime(var9);
- }
-
- /** @deprecated */
- @Deprecated
- public static long parse(String var0) {
- int var1 = Integer.MIN_VALUE;
- byte var2 = -1;
- byte var3 = -1;
- int var4 = -1;
- byte var5 = -1;
- byte var6 = -1;
- boolean var7 = true;
- char var8 = '\uffff';
- int var9 = 0;
- int var10 = -1;
- boolean var11 = true;
- int var12 = -1;
- char var13 = 0;
- if (var0 != null) {
- int var14 = var0.length();
-
- while(true) {
- if (var9 >= var14) {
- if (var1 != Integer.MIN_VALUE && var2 >= 0 && var3 >= 0) {
- if (var1 < 100) {
- synchronized(Date.class) {
- if (defaultCenturyStart == 0) {
- defaultCenturyStart = gcal.getCalendarDate().getYear() - 80;
- }
- }
-
- var1 += defaultCenturyStart / 100 * 100;
- if (var1 < defaultCenturyStart) {
- var1 += 100;
- }
- }
-
- if (var6 < 0) {
- var6 = 0;
- }
-
- if (var5 < 0) {
- var5 = 0;
- }
-
- if (var4 < 0) {
- var4 = 0;
- }
-
- BaseCalendar var27 = getCalendarSystem(var1);
- if (var12 == -1) {
- BaseCalendar.Date var29 = (BaseCalendar.Date)var27.newCalendarDate(TimeZone.getDefaultRef());
- var29.setDate(var1, var2 + 1, var3);
- var29.setTimeOfDay(var4, var5, var6, 0);
- return var27.getTime(var29);
- }
-
- BaseCalendar.Date var28 = (BaseCalendar.Date)var27.newCalendarDate((TimeZone)null);
- var28.setDate(var1, var2 + 1, var3);
- var28.setTimeOfDay(var4, var5, var6, 0);
- return var27.getTime(var28) + (long)(var12 * '\uea60');
- }
- break;
- }
-
- var8 = var0.charAt(var9);
- ++var9;
- if (var8 > ' ' && var8 != ',') {
- if (var8 == '(') {
- int var25 = 1;
-
- while(var9 < var14) {
- var8 = var0.charAt(var9);
- ++var9;
- if (var8 == '(') {
- ++var25;
- } else if (var8 == ')') {
- --var25;
- if (var25 <= 0) {
- break;
- }
- }
- }
- } else if ('0' <= var8 && var8 <= '9') {
- for(var10 = var8 - 48; var9 < var14 && '0' <= (var8 = var0.charAt(var9)) && var8 <= '9'; ++var9) {
- var10 = var10 * 10 + var8 - 48;
- }
-
- if (var13 != '+' && (var13 != '-' || var1 == Integer.MIN_VALUE)) {
- if (var10 >= 70) {
- if (var1 != Integer.MIN_VALUE || var8 > ' ' && var8 != ',' && var8 != '/' && var9 < var14) {
- break;
- }
-
- var1 = var10;
- } else if (var8 == ':') {
- if (var4 < 0) {
- var4 = (byte)var10;
- } else {
- if (var5 >= 0) {
- break;
- }
-
- var5 = (byte)var10;
- }
- } else if (var8 == '/') {
- if (var2 < 0) {
- var2 = (byte)(var10 - 1);
- } else {
- if (var3 >= 0) {
- break;
- }
-
- var3 = (byte)var10;
- }
- } else {
- if (var9 < var14 && var8 != ',' && var8 > ' ' && var8 != '-') {
- break;
- }
-
- if (var4 >= 0 && var5 < 0) {
- var5 = (byte)var10;
- } else if (var5 >= 0 && var6 < 0) {
- var6 = (byte)var10;
- } else if (var3 < 0) {
- var3 = (byte)var10;
- } else {
- if (var1 != Integer.MIN_VALUE || var2 < 0 || var3 < 0) {
- break;
- }
-
- var1 = var10;
- }
- }
- } else {
- if (var10 < 24) {
- var10 *= 60;
- } else {
- var10 = var10 % 100 + var10 / 100 * 60;
- }
-
- if (var13 == '+') {
- var10 = -var10;
- }
-
- if (var12 != 0 && var12 != -1) {
- break;
- }
-
- var12 = var10;
- }
-
- var13 = 0;
- } else if (var8 != '/' && var8 != ':' && var8 != '+' && var8 != '-') {
- int var15;
- for(var15 = var9 - 1; var9 < var14; ++var9) {
- var8 = var0.charAt(var9);
- if (('A' > var8 || var8 > 'Z') && ('a' > var8 || var8 > 'z')) {
- break;
- }
- }
-
- if (var9 <= var15 + 1) {
- break;
- }
-
- int var16 = wtb.length;
-
- while(true) {
- --var16;
- if (var16 < 0) {
- break;
- }
-
- if (wtb[var16].regionMatches(true, 0, var0, var15, var9 - var15)) {
- int var17 = ttb[var16];
- if (var17 != 0) {
- if (var17 == 1) {
- if (var4 > 12 || var4 < 1) {
- throw new IllegalArgumentException();
- }
-
- if (var4 < 12) {
- var4 += 12;
- }
- } else if (var17 == 14) {
- if (var4 > 12 || var4 < 1) {
- throw new IllegalArgumentException();
- }
-
- if (var4 == 12) {
- var4 = 0;
- }
- } else if (var17 <= 13) {
- if (var2 >= 0) {
- throw new IllegalArgumentException();
- }
-
- var2 = (byte)(var17 - 2);
- } else {
- var12 = var17 - 10000;
- }
- }
- break;
- }
- }
-
- if (var16 < 0) {
- break;
- }
-
- var13 = 0;
- } else {
- var13 = var8;
- }
- }
- }
- }
-
- throw new IllegalArgumentException();
- }
-
- /** @deprecated */
- @Deprecated
- public int getYear() {
- return this.normalize().getYear() - 1900;
- }
-
- /** @deprecated */
- @Deprecated
- public void setYear(int var1) {
- this.getCalendarDate().setNormalizedYear(var1 + 1900);
- }
-
- /** @deprecated */
- @Deprecated
- public int getMonth() {
- return this.normalize().getMonth() - 1;
- }
-
- /** @deprecated */
- @Deprecated
- public void setMonth(int var1) {
- int var2 = 0;
- if (var1 >= 12) {
- var2 = var1 / 12;
- var1 %= 12;
- } else if (var1 < 0) {
- var2 = CalendarUtils.floorDivide(var1, 12);
- var1 = CalendarUtils.mod(var1, 12);
- }
-
- BaseCalendar.Date var3 = this.getCalendarDate();
- if (var2 != 0) {
- var3.setNormalizedYear(var3.getNormalizedYear() + var2);
- }
-
- var3.setMonth(var1 + 1);
- }
-
- /** @deprecated */
- @Deprecated
- public int getDate() {
- return this.normalize().getDayOfMonth();
- }
-
- /** @deprecated */
- @Deprecated
- public void setDate(int var1) {
- this.getCalendarDate().setDayOfMonth(var1);
- }
-
- /** @deprecated */
- @Deprecated
- public int getDay() {
- int var10000 = this.normalize().getDayOfWeek();
- BaseCalendar var10001 = gcal;
- return var10000 - 1;
- }
-
- /** @deprecated */
- @Deprecated
- public int getHours() {
- return this.normalize().getHours();
- }
-
- /** @deprecated */
- @Deprecated
- public void setHours(int var1) {
- this.getCalendarDate().setHours(var1);
- }
-
- /** @deprecated */
- @Deprecated
- public int getMinutes() {
- return this.normalize().getMinutes();
- }
-
- /** @deprecated */
- @Deprecated
- public void setMinutes(int var1) {
- this.getCalendarDate().setMinutes(var1);
- }
-
- /** @deprecated */
- @Deprecated
- public int getSeconds() {
- return this.normalize().getSeconds();
- }
-
- /** @deprecated */
- @Deprecated
- public void setSeconds(int var1) {
- this.getCalendarDate().setSeconds(var1);
- }
-
- public long getTime() {
- return this.getTimeImpl();
- }
-
- private final long getTimeImpl() {
- if (this.cdate != null) {
- this.normalize();
- BaseCalendar var1 = getCalendarSystem(this.cdate);
- this.fastTime = var1.getTime(this.cdate);
- }
-
- return this.fastTime;
- }
-
- public void setTime(long var1) {
- this.fastTime = var1;
- this.cdate = null;
- }
-
- public boolean before(Date var1) {
- return getMillisOf(this) < getMillisOf(var1);
- }
-
- public boolean after(Date var1) {
- return getMillisOf(this) > getMillisOf(var1);
- }
-
- public boolean equals(Object var1) {
- return var1 instanceof Date && this.getTime() == ((Date)var1).getTime();
- }
-
- static final long getMillisOf(Date var0) {
- if (var0.cdate == null) {
- return var0.fastTime;
- } else {
- BaseCalendar.Date var1 = (BaseCalendar.Date)var0.cdate.clone();
- return gcal.getTime(var1);
- }
- }
-
- public int compareTo(Date var1) {
- long var2 = getMillisOf(this);
- long var4 = getMillisOf(var1);
- return var2 < var4 ? -1 : (var2 == var4 ? 0 : 1);
- }
-
- public int hashCode() {
- long var1 = this.getTime();
- return (int)var1 ^ (int)(var1 >> 32);
- }
-
- public String toString() {
- BaseCalendar.Date var1 = this.normalize();
- StringBuilder var2 = new StringBuilder(28);
- int var3 = var1.getDayOfWeek();
- BaseCalendar var10001 = gcal;
- if (var3 == 1) {
- var3 = 8;
- }
-
- convertToAbbr(var2, wtb[var3]).append(' ');
- convertToAbbr(var2, wtb[var1.getMonth() - 1 + 2 + 7]).append(' ');
- CalendarUtils.sprintf0d(var2, var1.getDayOfMonth(), 2).append(' ');
- CalendarUtils.sprintf0d(var2, var1.getHours(), 2).append(':');
- CalendarUtils.sprintf0d(var2, var1.getMinutes(), 2).append(':');
- CalendarUtils.sprintf0d(var2, var1.getSeconds(), 2).append(' ');
- TimeZone var4 = var1.getZone();
- if (var4 != null) {
- var2.append(var4.getDisplayName(var1.isDaylightTime(), 0, Locale.US));
- } else {
- var2.append("GMT");
- }
-
- var2.append(' ').append(var1.getYear());
- return var2.toString();
- }
-
- private static final StringBuilder convertToAbbr(StringBuilder var0, String var1) {
- var0.append(Character.toUpperCase(var1.charAt(0)));
- var0.append(var1.charAt(1)).append(var1.charAt(2));
- return var0;
- }
-
- /** @deprecated */
- @Deprecated
- public String toLocaleString() {
- DateFormat var1 = DateFormat.getDateTimeInstance();
- return var1.format(this);
- }
-
- /** @deprecated */
- @Deprecated
- public String toGMTString() {
- long var1 = this.getTime();
- BaseCalendar var3 = getCalendarSystem(var1);
- BaseCalendar.Date var4 = (BaseCalendar.Date)var3.getCalendarDate(this.getTime(), (TimeZone)null);
- StringBuilder var5 = new StringBuilder(32);
- CalendarUtils.sprintf0d(var5, var4.getDayOfMonth(), 1).append(' ');
- convertToAbbr(var5, wtb[var4.getMonth() - 1 + 2 + 7]).append(' ');
- var5.append(var4.getYear()).append(' ');
- CalendarUtils.sprintf0d(var5, var4.getHours(), 2).append(':');
- CalendarUtils.sprintf0d(var5, var4.getMinutes(), 2).append(':');
- CalendarUtils.sprintf0d(var5, var4.getSeconds(), 2);
- var5.append(" GMT");
- return var5.toString();
- }
-
- /** @deprecated */
- @Deprecated
- public int getTimezoneOffset() {
- int var1;
- if (this.cdate == null) {
- TimeZone var2 = TimeZone.getDefaultRef();
- if (var2 instanceof ZoneInfo) {
- var1 = ((ZoneInfo)var2).getOffsets(this.fastTime, (int[])null);
- } else {
- var1 = var2.getOffset(this.fastTime);
- }
- } else {
- this.normalize();
- var1 = this.cdate.getZoneOffset();
- }
-
- return -var1 / '\uea60';
- }
-
- private final BaseCalendar.Date getCalendarDate() {
- if (this.cdate == null) {
- BaseCalendar var1 = getCalendarSystem(this.fastTime);
- this.cdate = (BaseCalendar.Date)var1.getCalendarDate(this.fastTime, TimeZone.getDefaultRef());
- }
-
- return this.cdate;
- }
-
- private final BaseCalendar.Date normalize() {
- if (this.cdate == null) {
- BaseCalendar var1 = getCalendarSystem(this.fastTime);
- this.cdate = (BaseCalendar.Date)var1.getCalendarDate(this.fastTime, TimeZone.getDefaultRef());
- } else {
- TimeZone var5 = TimeZone.getDefaultRef();
- if (var5 != this.cdate.getZone()) {
- BaseCalendar var2 = getCalendarSystem(this.cdate);
- long var3 = var2.getTime(this.cdate);
- this.cdate.setZone(var5);
- var2.getCalendarDate(var3, this.cdate);
- }
-
- this.cdate = normalize(this.cdate);
- }
-
- return this.cdate;
- }
-
- private static final BaseCalendar.Date normalize(BaseCalendar.Date var0) {
- int var1 = var0.getNormalizedYear();
- int var2 = var0.getMonth();
- int var3 = var0.getDayOfMonth();
- int var4 = var0.getHours();
- int var5 = var0.getMinutes();
- int var6 = var0.getSeconds();
- int var7 = var0.getMillis();
- TimeZone var8 = var0.getZone();
- if (var1 != 1582 && var1 <= 280000000 && var1 >= -280000000) {
- BaseCalendar var14 = getCalendarSystem(var1);
- if (var14 != getCalendarSystem(var0)) {
- var0 = (BaseCalendar.Date)var14.newCalendarDate(var8);
- var0.setNormalizedDate(var1, var2, var3).setTimeOfDay(var4, var5, var6, var7);
- }
-
- long var15 = var14.getTime(var0);
- BaseCalendar var16 = getCalendarSystem(var15);
- if (var16 != var14) {
- var0 = (BaseCalendar.Date)var16.newCalendarDate(var0.getZone());
- var0.setNormalizedDate(var1, var2, var3).setTimeOfDay(var4, var5, var6, var7);
- var16.getTime(var0);
- }
-
- return var0;
- } else {
- if (var8 == null) {
- var8 = TimeZone.getTimeZone("GMT");
- }
-
- GregorianCalendar var9 = new GregorianCalendar(var8);
- var9.clear();
- var9.set(14, var7);
- var9.set(var1, var2 - 1, var3, var4, var5, var6);
- long var10 = var9.getTimeInMillis();
- BaseCalendar var12 = getCalendarSystem(var10);
- var0 = (BaseCalendar.Date)var12.getCalendarDate(var10, var8);
- return var0;
- }
- }
-
- private static final BaseCalendar getCalendarSystem(int var0) {
- return var0 >= 1582 ? gcal : getJulianCalendar();
- }
-
- private static final BaseCalendar getCalendarSystem(long var0) {
- return var0 < 0L && var0 < -12219292800000L - (long)TimeZone.getDefaultRef().getOffset(var0) ? getJulianCalendar() : gcal;
- }
-
- private static final BaseCalendar getCalendarSystem(BaseCalendar.Date var0) {
- if (jcal == null) {
- return gcal;
- } else {
- return var0.getEra() != null ? jcal : gcal;
- }
- }
-
- private static final synchronized BaseCalendar getJulianCalendar() {
- if (jcal == null) {
- jcal = (BaseCalendar)CalendarSystem.forName("julian");
- }
-
- return jcal;
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.writeLong(this.getTimeImpl());
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- this.fastTime = var1.readLong();
- }
- }
-